1. Statement of the Technical Field
The invention concerns multi-level data stores, such as a flash memory device, a Resistive Random Access Memory (ReRAM) device, and a Phase Change Memory (PCM) device. More particularly, the invention concerns circuits and methods for programming non-volatile memory.
2. Description of the Related Art
Non-volatile memory is generally computer memory that can retain stored information even when not powered. Examples of non-volatile memory include read-only memory (ROM), flash memory, hard disks, floppy disk drives, magnetic tapes, and optical disc drives. Flash memory can be a solid state storage device of a NAND type or a solid state storage device of a NOR type. NOR type flash memory has certain advantages over NAND type flash memory. For example, NOR type flash memory has more desirable data retention characteristics than NAND type flash memory. As such, NOR type flash memory has conventionally been used to store certain types of data, such as security data. Error correction codes (ECCs) have been employed for improving the reliability of NOR type flash memory. ECCs are generally codes inserted into the NOR type flash memory for detecting errors in the security data.